Relational databases, and their corresponding management systems, are very popular for storage and access of data. Relational databases are organized into tables which consist of rows and columns of data. The rows are formally called tuples. A database will typically have many tables and each table will typically have multiple tuples and multiple columns. The tables are typically stored on direct access storage devices (DASD) such as magnetic or optical disk drives for semi-permanent storage.
Typically, such databases are accessible through queries in SQL, Structured Query Language, which is a standard language for interactions with such relational databases. An SQL query is received by the management software for the relational database and is then used to look up information in the database tables.
However, software operating such relational databases typically produces queries which cannot be readily understood and analyzed across different specific software platforms, even if all of the software platforms communicate according to SQL. This lack of cross-communication is clearly inefficient, as it prevents different databases operated by different software platforms from readily communicating with each other.
The problem becomes more acute when other types of databases are considered, as not all databases currently implemented are relational databases. These different types of databases have markedly different structures, not only different protocol languages for communication, and hence require complete reconstruction of database queries if such queries were to be made across database types. Non-limiting examples of different types of databases include 3D databases, flat file databases, hierarchical databases, object databases and so forth.
Various attempts have been made to overcome this problem. For example, U.S. Pat. No. 5,257,366 teaches a method for interoperability between different relational database software platforms, being accessed according to SQL queries which are converted to an executable form before being used to access the database. Even with these limitations, the method is limited to replacing certain aspects of queries that were implementation specific with more general forms, but does not provide a complete translation solution.
U.S. Pat. No. 5,428,737 teaches a method for translation between SQL and graphically represented queries. The graphically represented query is divided into components and can then be translated to SQL by using linked data structures. The graphically represented queries are easier for human users to construct and understand; however, the taught method does not relate to translation between different database query protocols.
Similarly, U.S. Pat. No. 5,924,089 relates to translation of natural language queries to SQL queries, again for the convenience of human users; however, the taught method does not relate to translation between different database query protocols.
U.S. Pat. No. 6,009,422 teaches a method for translating database queries of different types by using a common general query language. The accessing application, or client, must use this common general query language. Therefore, the method does not solve the problem of complete translation between different database protocols and would require the database clients to be changed.
U.S. Pat. No. 6,347,315 teaches a method for selecting the most compatible database for performing a query; translation is also included, but only once the most compatible database has been selected.